Questa domanda ha già risposte qui: Come restituisco la risposta da una chiamata asincrona? (42 risposte) Chiuso 5 mesi fa. Pertanto, quando si esegue il codice seguente, la risposta di console.log (ba) non è definita Ma quando provo questo nella console Chrome V8 ottengo l'output corretto che mi aspetto. Non sono completamente sicuro di cosa stia succedendo qui. lasciate ba; funzione Setqa () { (async () => { wait fetch ('questions.json') .then (res => res.json ()) .then (async (data) => { ba = attendi dati; }); }) (); } Setqa (); console.log (ba); I contenuti del file json sono i seguenti: "domande": [{ "questionType": "multiple", "domanda": "Com'è il tempo", "risponde": "", "domanda risposta": "" }, { "questionType": "multiple", "domanda": "Come stai oggi?", "answer": " 1", "questionAnswer": "textPurpose1" } ]
2021-02-27 08:13:10
Immagino che dovrebbe funzionare lasciate ba; funzione Setqa () { return fetch ('questions.json') .then (res => res.json ()) .then (async (data) => { ba = attendi dati; }); } Setqa (). Quindi (() => console.log (ba)); Ma sarebbe un approccio migliore funzione async setQa () { const res = await fetch ('questions.json'); return res.json (); } let ba = wait setQa (); | Non è la risposta che stai cercando? Sfoglia altre domande etichettate javascript json fetch console.log o fai la tua domanda.